DNS介绍

        DNS 为 Domain Name System (域名系统)的缩写,它是一种将 ip 地址转换成对应的主机名或将主机名转换成与之相对应 ip 的一种服务机制。其中通过域名解析出 ip 地址的叫做正向解析,通过 ip 地址解析出域名的叫做反向解析。 DNS 使用 TCP 和 UDP ,端口号都是53,但它主要使用 UDP ,服务器之间备份使用 TCP 。全世界只有 13 台 “根”服务器,1 个根服务器放在美国,其他 12 台为辅根服务器,DNS 服务器根据角色可以分为:主 DNS 、从 DNS 、缓存 DNS 服务器,DNS 转发服务器。

        首先来看看域名的结构组成,平时访问网站的时候,都会用一个域名去请求,比如 www.baidu.com ,其实在 com 后面还有一个点,这个点叫做根域。下图是一个域名的树状结构,根域下面会有 .com .cn .net 等顶级域,在顶级域下面又有了第二层域,比如 www.baidu.com 或者 .com.cn ,而 www.baidu.com则为子域,我们经常用子域来作为网站的域名。

        有了网站域名,下面来看看,域名是如何解析到 ip 的,下图为域名解析过程流程图

  1. 在浏览器中输入 www.sina.com.cn 域名,操作系统会先检查子机本地的 hosts 文件是否有这个网站映射关系,如果有,就先调用这个 IP 地址映射,完成域名解析。

  2. 如果 hosts 里没有这个域名的映射,则查找本地 DNS 解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

  3. 如果 hosts 与本地 DNS 解析器缓存都没有相应的网址映射关系,首先会找本机设置的首选 DNS 服务器,在此我们叫它本地 DNS 服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

  4. 如果要查询的域名,不由本地 DNS 服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个 IP 地址映射,完成域名解析,此解析不具有权威性。

  5. 如果本地 DNS 服务器本地区域文件与缓存解析都失效,则分局本地 DNS 服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地 DNS 就把请求发至 13 台根 DNS ,根 DNS 服务器收到请求后会判断这个域名是谁来授权管理 ,并会返回一个负责该顶级域名服务器的一个 IP 。本地 DNS 服务器收到 IP 信息后,将会联系负责 域的这台服务器。这台负责 域的服务器收到请求后,如果自己无法解析,它就会找一个管理 管理域的下一级 DNS 服务器地址给本地 DNS 服务器。当本地 DNS 服务器收到这个地址后,就会找这个域服务器,重复上面的动作,进行查询,直至找到 www.sina.com.cn 主机。

  6. 如果用的是转发模式,此 DNS 服务器就会把请求转发至上一级服务器进行解析,上一级服务器如果不能解析,或找根 DNS 或把转请求转至上上级,以此循环。不管是本地 DNS 服务器用是是转发,还是根提示,最后都是把结果返回给本地 DNS 服务器,由此 DNS 服务器再返回给客户机。